package com.blackcat.dynamicexcel.entity;

import com.alibaba.fastjson.annotation.JSONType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

import static com.alibaba.fastjson.serializer.SerializerFeature.*;

/**
 * 描述 ：Excel 数据页
 *
 * @author : zhangdahui
 * @date : 2022/10/11 10:37
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JSONType(ignores = {"id","excelId"},serialzeFeatures = {WriteNullStringAsEmpty,WriteNullBooleanAsFalse,WriteNullListAsEmpty})
public class ExcelSheet {

    /**
     * 标识
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 主表标识
     */
    private String excelId;
    /**
     * sheet名称
     */
    private String sheetName;
    /**
     * 所在下标
     */
    private Integer sheetIndex;

    /**
     * 数据库表名，验重时需要
     */
    private String tableName;

    /**
     * 表头所在行
     */
    private int headerRow;

    /**
     * 合并字段，示例：以相同名称的数据分组
     */
    private String mergeField;

    /**
     * 是否数据页 1：数据页获取数据并校验  0：忽略该页数据
     */
    @TableField("is_data")
    private boolean data;

    /**
     * 数据页表头定义
     */
    @TableField(exist = false)
    private List<ExcelHeader> headers;

}
